#ifndef _CONTACT_H_
#define _CONTACT_H_

#include"utili.h"

enum { QUIT, ADD, DEL, FIND, MODIFY, CLEAR, SORT, SHOW };


#define MAX_NAME_SIZE 20
#define MAX_SEX_SIZE 3
#define MAX_TEL_SIZE 12
#define MAX_ADD_SIZE 256

#define DEFAULT_CONTACT_SIZE 128
#define CONTACT_INC_SIZE 16

//定义信息结构
typedef struct PersonInfo
{
	char name[MAX_NAME_SIZE];
	char sex[MAX_SEX_SIZE];
	int age;
	char tel[MAX_TEL_SIZE];
	char add[MAX_ADD_SIZE];
}PersonInfo;

//定义通讯录结构
typedef struct Contact
{
	PersonInfo* Cont;
	size_t capacity;
	size_t size;
}Contact;

bool IsEmpty(Contact* pcnt);
bool IsFull(Contact* pcnt);
bool CheckCapacity(Contact* pcnt);
int FindByName(Contact* pcnt, char name[]);
void InitContact(Contact* pcnt);
void AddContact(Contact* pcnt);
void ShowContact(Contact* pcnt);
void FindContact(Contact* pcnt);
void ModifyContact(Contact* pcnt);
void DelContact(Contact* pcnt);
void ClearContact(Contact* pcnt);
void SortContact(Contact* pcnt);
void DertoryContact(Contact* pcnt);
void SaveContact(Contact* pcnt);
void LoadContact(Contact* pcnt);

#endif    /*  _CONTACT_H_  */
